Automatic processing of financial documents such as bank checks has been enhanced by the use of machine readable data, such as the well known machine and human readable E13-B and CMC-7 codes, as well as special purpose bar codes. These codes are generally configured to encode individual data items as a time-varying signal which is reproduced as the check passes a transducer while moving through a high speed check processing machine. The information content of the signal is an interrelated function of both the marking and the transport motion. Most code formats presently in use require a number of successive elements to identify each encoded character. Considering the limited size of most bank checks, these existing code formats severely restrict the amount of data that can be recorded in a single track along the length of the bank check.
There are known code formats, wherein characters are represented by one or more markings in a plurality of simultaneously sensed parallel fields. The common 80 column punched card is a well known example. In its simplist form there is one mark per encoded character. A plurality of parallel code zones are provided, one for each member of the encoded character set. Two or more marks may be used to encode many more characters than there are parallel zones. However, a code format that identifies characters by the use of multiple markings may be subject to substitution errors due to the failure to read one of the parallel markings or due to skew of the document which may align marks from adjacent characters. In other words, the markings for one or two characters may be partially common to markings of a different character.